home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Applications / QuArK / quarkpy / mapsearch.py < prev    next >
Text File  |  2004-01-05  |  4KB  |  117 lines

  1. """   QuArK  -  Quake Army Knife
  2.  
  3. Base of the Map editor "Search" menu
  4. """
  5. #
  6. # Copyright (C) 1996-99 Armin Rigo
  7. # THIS FILE IS PROTECTED BY THE GNU GENERAL PUBLIC LICENCE
  8. # FOUND IN FILE "COPYING.TXT"
  9. #
  10.  
  11. #$Header: /cvsroot/quark/runtime/quarkpy/mapsearch.py,v 1.3 2003/03/21 05:57:05 cdunde Exp $
  12.  
  13.  
  14.  
  15. import quarkx
  16. from qdictionnary import Strings
  17. from maputils import *
  18. import qmenu
  19.  
  20.  
  21. def SearchResult(editor, list):
  22.     #
  23.     # For commands that make a simple search, you can call this
  24.     # function with the 'list' of objects found and the results
  25.     # will be displayed for the user. If someone wants to extend
  26.     # this code, we could let the user choose if he wants to select
  27.     # all items found (current behaviour) or if he wants to browse
  28.     # step-by-step through the objects -- for this case, add a menu
  29.     # item "find next" to the Search menu.
  30.     #
  31.     if len(list):
  32.         editor.layout.explorer.sellist = list
  33.         list = editor.layout.explorer.sellist  # re-read this, to remove sub-items of items also in the list
  34.         if len(list)==1:
  35.             editor.layout.explorer.uniquesel = list[0]
  36.             quarkx.msgbox(Strings[194], MT_INFORMATION, MB_OK)
  37.         else:
  38.             quarkx.msgbox(Strings[195]%len(list), MT_INFORMATION, MB_OK)
  39.     else:
  40.         quarkx.msgbox(Strings[193], MT_INFORMATION, MB_OK)
  41.  
  42.  
  43. #
  44. # Search for Holes
  45. #
  46.  
  47. def sholes1click(m):
  48.     editor = mapeditor()
  49.     if editor is None: return
  50.     import mapholes
  51.     mapholes.SearchForHoles(editor)
  52.  
  53.  
  54.  
  55. #
  56. # Perform Checks on the map
  57. #
  58.  
  59. def noproblem(menu):
  60.     if menu is not None:
  61.         quarkx.msgbox(Strings[5668], MT_INFORMATION, MB_OK)
  62.     return 1
  63.  
  64. def problem(description, sellist=None):
  65.     if quarkx.msgbox(Strings[5669] % description, MT_ERROR, MB_OK | MB_IGNORE) == MR_OK:
  66.         editor = mapeditor()
  67.         if (editor is not None) and (editor.layout is not None) and (sellist is not None):
  68.             editor.layout.explorer.sellist = sellist
  69.         return 0
  70.  
  71. def CheckMap(menu=None):
  72.     progr = quarkx.progressbar(501, len(checkitems))
  73.     try:
  74.         for i in checkitems:
  75.             result = i.onclick()
  76.             if not result:
  77.                 return result
  78.             progr.progress()
  79.     finally:
  80.         progr.close()
  81.     return noproblem(menu)
  82.  
  83.  
  84. #
  85. # Global variables to update from plug-ins.
  86. #
  87.  
  88. items = []
  89. checkitems = []
  90. shortcuts = {}
  91.  
  92. def onclick(menu):
  93.     pass
  94.  
  95.  
  96. def SearchMenu():
  97.     "The Search menu, with its shortcuts."
  98.     sholes1 = qmenu.item("&Holes in map", sholes1click, "|Holes in map:\n\nThis function will search for a hole in your map.\n\nA map must not contain any hole, that is, there must be no path from 'inside' to 'outside' the map. All entities must be completely enclosed by polyhedrons. With this command, QuArK will search for such holes, and if it finds one, it displays an arrow that starts from an entity and goes outside through a hole or a gap. Generally, the end of the arrow is exactly in the hole.\n\nNote that the path found by QuArK is maybe not the most direct way to reach the hole, and there are maybe other holes in your map.", "intro.mapeditor.menu.html#searchmenu")
  99.     if len(checkitems)>1:
  100.         allchecks = [qmenu.item("&ALL CHECKS", CheckMap, "perform all map checks")]
  101.     else:
  102.         allchecks = []
  103.     it1 = items + [qmenu.sep, sholes1, qmenu.sep] + checkitems + allchecks
  104.     return qmenu.popup("&Search", it1, onclick), shortcuts
  105.  
  106. # ----------- REVISION HISTORY ------------
  107. #
  108. #
  109. #$Log: mapsearch.py,v $
  110. #Revision 1.3  2003/03/21 05:57:05  cdunde
  111. #Update infobase and add links
  112. #
  113. #Revision 1.2  2000/06/02 16:00:22  alexander
  114. #added cvs headers
  115. #
  116. #
  117. #